import { IParam } from '../../common';
import { IWizardPanelAbility } from '../ability';
import { ICtrlActionResult } from '../data-action';
import { IWizardPanelStore } from '../store';
import { IDECtrlController } from './i-de-ctrl-controller';

/**
 * 向导面板部件控制器接口
 *
 * @export
 * @interface IWizardPanelController
 * @extends {IDECtrlController<S, A>}
 * @template S
 * @template A
 */
export interface IWizardPanelController<
	S extends IWizardPanelStore,
	A extends IWizardPanelAbility
> extends IDECtrlController<S, A> {
	/**
	 * 表单加载草稿
	 *
	 * @param {IParam} [opts] 行为参数
	 * @return {*}  {Promise<ICtrlActionResult>}
	 * @memberof IWizardPanelController
	 */
	load(opts?: IParam): Promise<ICtrlActionResult>;

	/**
	 * 上一步
	 *
	 * @memberof IWizardPanelController
	 */
	clickPrev(): void;

	/**
	 * 下一步
	 *
	 * @memberof IWizardPanelController
	 */
	clickNext(): void;

	/**
	 * 完成
	 *
	 * @memberof IWizardPanelController
	 */
	clickFinish(): void;
}
